// Have include guard.
#ifndef ASYNCSTATUSSTARTSTATE_H
#define ASYNCSTATUSSTARTSTATE_H

// Include files.
#include "State.hpp"
#include "AsyncStatus.hpp"
#include "AsyncStatusFinishState.hpp"

/**
 *  The AsyncStatusStartState class is a state that generates a AsyncStatus.
 *  
 *  This class is untested.
 */
class AsyncStatusStartState :
	public State
{
	friend class AsyncStatusFinishState;
	
	public:
		typedef AsyncStatusFinishState FinishState;
		
		AsyncStatusStartState();
	protected:
		void SetAsyncStatus(AsyncStatus &asyncStatus);
	private:
		AsyncStatus *m_asyncStatus;
		
		AsyncStatus &GetAsyncStatus();
};

#endif // #ifndef ASYNCSTATUSSTARTSTATE_H 
